package com.swsc.solarverse.service.sys;

import com.swsc.solarverse.common.mybatis.MybatisService;
import com.swsc.solarverse.dao.entity.sys.CorporationDO;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 * 组织机构表 服务类
 * </p>
 *
 * @author AutoGenerator
 * @since 2022-02-24
 */
public interface ICorporationService extends MybatisService<CorporationDO> {
    /**
     * 查询用户关联机构
     * @param userNo
     * @param organType
     * @return
     */
    List<CorporationDO> listUserCorporations(Long userNo, String organType);

    /**
     * 角色关联机构
     * @param userNo
     * @param roleIdIn
     * @return
     */
    List<CorporationDO> listRoleCorporations(Integer tenantNo, Long userNo, Long roleId, Collection<Long> roleIdIn);

    /**
     * 获取组织信息
     * @param organNo
     * @return
     */
    CorporationDO getByOrganNo(Integer organNo);

    /**
     *
     * @param tenantNo
     * @param organNo
     * @return
     */
    CorporationDO getByTenantOrganNo(Integer tenantNo, Integer organNo);

    /**
     *
     * @param tenantNo
     * @param organNo
     * @return
     */
    List<CorporationDO> getChildrenByTenantOrganPno(Integer tenantNo, Integer organPno);

    /**
     * 获取电站
     * @param organNo
     * @return
     */
    CorporationDO getStationByOrganNo(Integer organNo);

    /**
     * 校验
     * @param organNo
     * @return
     */
    CorporationDO checkStationByOrganNo(Integer organNo);

    /**
     * 校验
     * @param tenantNo
     * @param organNo
     * @return
     */
    CorporationDO checkStationByTanantNoOrganNo(Integer tenantNo, Integer organNo);

    /**
     * 查询组织机构及其所有子级机构
     * @param organNo
     * @return
     */
    List<CorporationDO> listCorpWithSub(Integer organNo);
}
